# $Id: Makefile,v 1.105 1999/05/20 22:15:00 dhiller Exp $
# Copyright (C) 1995 - 1999, Hewlett-Packard Company, all rights reserved.
# Written by Eric Backus

# Makefile for internal LSID test host programs

E1432_BASE	= /opt/e1432
E1432_TEST	= $(E1432_BASE)/test

E1432_BUILD	= ..
E1432_INC	= $(E1432_BUILD)/hostlib
E1432_LIB	= $(E1432_BUILD)/hostlib
E1432_COMPRESS	= $(E1432_BUILD)/tools/compress

X_LIBS		= -L /usr/lib/X11R5 -lX11

# $(E1432_BUILD)/demo is for plot.a, xplot.h
CC		= cc
LD		= cc
CFLAGS		= -Aa -D_HPUX_SOURCE -I $(E1432_INC) -I $(E1432_BUILD)/demo\
			+O2 +w1
LDFLAGS		= -s
LNFLAGS		= $(CFLAGS) -x
#IO		= hpe1432.sl
IO		= lib1432.a -lsicl
LDLIBS		= $(E1432_LIB)/$(IO) $(E1432_BUILD)/demo/xplot.a $(X_LIBS) -lm
LNLIBS		= $(E1432_LIB)/llib-l1432.ln\
			$(E1432_BUILD)/demo/llib-lxplot.ln -lm
CFILES		= arbsrc.c arbsrc1.c arbsrct.c arbsrct2.c autorange.c\
			chanswap.c chris2.c christach.c donh.c\
			exttrig.c fof.c fourtach.c gap.c gate3.c gate4.c\
			gmicp.c i2c.c imaptest.c insrc.c intr2.c\
			intrig.c libstress.c measwatchdog.c\
			minimal.c multimod.c multipass.c multipass2.c\
			multisrc.c oct.c oct_rpm.c oct_ver.c onthefly.c\
			order3.c order-active.c ovld.c raw.c realtime.c\
			rms_ord.c rpmarm.c sca_dsp.c sca_ord.c source.c\
			source2.c source3.c source4.c source5.c\
			sourceaz.c sourcehz.c spans.c src_dnld.c\
			srcarbtest.c srccalbus.c srcoff.c srcoffmode.c\
			srcphasetest.c srcrealtime.c srcsweep.c\
			tachdelay.c tachreset.c tachtime.c template.c timer.c\
			tlevel.c trailer.c trailer2.c trig_frc.c ttltrg.c\
			ttltrg2.c twoinit.c yuji.c yujib.c yujic.c
OBJS		= $(CFILES:.c=.o)
PROGS		= $(CFILES:.c=)

all:	$(PROGS) hwc
	cd e1485 && $(MAKE) $@
	cd lock && $(MAKE) $@

run:	all
	./minimal

# No longer installs the compiled programs, since the end user
# probably doesn't care and they take up 5 MB.
install:	all
	cp -f Makefile $(CFILES) hwc.c $(E1432_TEST)
	chmod -w $(E1432_TEST)/*
	cd e1485 && $(MAKE) $@
	cd lock && $(MAKE) $@

lint:	$(CFILES) hwc.c match.c
	lint $(LNFLAGS) $(CFILES) hwc.c $(LNLIBS) > lint
	lint $(LNFLAGS) match.c -ldsp $(LNLIBS) >> lint
	cd e1485 && $(MAKE) $@
	cd lock && $(MAKE) $@

clean:
	rm -f lint $(PROGS) hwc match *.o *~
	cd e1485 && $(MAKE) $@
	cd lock && $(MAKE) $@

$(OBJS):	$(E1432_INC)/e1432.h

$(PROGS):	$(E1432_LIB)/rev.c
	$(LD) $(LDFLAGS) $@.o $(LDLIBS) -o $@

match:	match.o $(E1432_LIB)/rev.c
	$(LD) $(LDFLAGS) $@.o -ldsp $(LDLIBS) -o $@

# data.o, diag not under "all" - painfully long to make data.o

data.c: ../subst/sema.bin
	$(E1432_COMPRESS)/makeData ../subst/sema.bin > data.c

data.o:	data.c
	cc data.c -Aa +w1 -I$(E1432_COMPRESS) -c

diag.o:	diag.c $(E1432_COMPRESS)/comp.h $(E1432_INC)/e1432.h
	cc diag.c $(CFLAGS) -I$(E1432_COMPRESS) -c

hwc.o:	hwc.c
	case `uname -r` in \
	*.09.*) $(CC) $(CFLAGS) -c hwc.c -o hwc.o;;\
	*.10.*) $(CC) -DTEST_CALLBACK $(CFLAGS) -c hwc.c -o hwc.o;;\
	esac

hwc:		$(E1432_LIB)/rev.c
	$(LD) $(LDFLAGS) $@.o $(E1432_LIB)/hpe1432.sl -o $@

diag:		diag.o data.o $(E1432_LIB)/rev.c
	$(LD) $(LDFLAGS) $@.o $(LDLIBS) data.o -o $@

ansi_s1_4:	ansi_s1_4.o ansi_s1_4_src.o $(E1432_LIB)/rev.c
	$(LD) $(LDFLAGS) $@.o ansi_s1_4_src.o $(LDLIBS) -o $@

arbsrc:		arbsrc.o
arbsrc1:	arbsrc1.o
arbsrct:	arbsrct.o
arbsrct2:	arbsrct2.o
autorange:	autorange.o
chanswap:	chanswap.o
chris2:		chris2.o
christach:	christach.o
donh:		donh.o
exttrig:	exttrig.o
fof:		fof.o
fourtach:	fourtach.o
gap:		gap.o
gate3:		gate3.o
gate4:		gate4.o
gmicp:		gmicp.o
hwc:		hwc.o
i2c:		i2c.o
imaptest:	imaptest.o
insrc:		insrc.o
intr2:		intr2.o
intrig:		intrig.o
libstress:	libstress.o
measwatchdog:	measwatchdog.o
minimal:	minimal.o
multimod:	multimod.o
multipass:	multipass.o
multipass2:	multipass2.o
multisrc:	multisrc.o
oct:		oct.o
oct_rpm:	oct_rpm.o
oct_ver:	oct_ver.o
onthefly:	onthefly.o
order3:		order3.o
order-active:	order-active.o
ovld:		ovld.o
raw:		raw.o
realtime:	realtime.o
rms_ord:	rms_ord.o
rpmarm:		rpmarm.o
sca_dsp:	sca_dsp.o
sca_ord:	sca_ord.o
source:		source.o
source2:	source2.o
source3:	source3.o
source4:	source4.o
source5:	source5.o
sourceaz:	sourceaz.o
sourcehz:	sourcehz.o
spans:		spans.o
src_dnld:	src_dnld.o
srcarbtest:	srcarbtest.o
srccalbus:	srccalbus.o
srcoff:		srcoff.o
srcoffmode:	srcoffmode.o
srcphasetest:	srcphasetest.o
srcrealtime:	srcrealtime.o
srcsweep:	srcsweep.o
tachdelay:	tachdelay.o
tachreset:	tachreset.o
tachtime:	tachtime.o
template:	template.o
timer:		timer.o
tlevel:		tlevel.o
trailer:	trailer.o
trailer2:	trailer2.o
trig_frc:	trig_frc.o
ttltrg:		ttltrg.o
ttltrg2:	ttltrg2.o
twoinit:	twoinit.o
yuji:		yuji.o
yujib:		yujib.o
yujic:		yujic.o
